home *** CD-ROM | disk | FTP | other *** search
/ Input 64 / Input_64_85-04_1985_Verlag_Heinz_Weise_de.d64 / K A L E N D E R (.txt) < prev    next >
Commodore BASIC  |  2023-02-26  |  12KB  |  446 lines

  1. 0 if peek(50307)=120 then poke50257,0
  2. 220 poke53280,11:poke53281,11:poke646,13
  3. 230 rem
  4. 240 open1,0
  5. 250 dimm$(11),wo$(6),ar$(365),az$(3),mx(3)
  6. 260 sc$="[147]        [203]alender von [196]aniel [210]oth       [157][148] [146]"
  7. 270 fori=0to11
  8. 280 readm$(i)
  9. 290 nexti
  10. 300 fori=0to6
  11. 310 readwo$(i)
  12. 320 nexti
  13. 330 rem
  14. 340 data"[202]anuar","[198]ebruar","[205]aerz","[193]pril","[205]ai","[202]uni"
  15. 350 data"[202]uli","[193]ugust","[211]eptember","[207]ktober","[206]ovember","[196]ezember"
  16. 360 data"[205]ontag","[196]ienstag","[205]ittwoch"
  17. 370 data"[196]onnerstag","[198]reitag","[211]amstag","[211]onntag"
  18. 380 rem
  19. 390 printsc$;"                [203]alender
  20. 400 [153]"                tab(tab(tab(tab(tab(tab(tab(tab(
  21. 410 print" 1. [213]mrechnung von [202]ulianischem [196]atum"
  22. 420 print"    in [203]alenderdatum"
  23. 430 print" 2. [213]mrechnung von [203]alenderdatum in"
  24. 440 print"    [202]ulianisches [196]atum"
  25. 450 print" 3. [212]age zwischen [196]aten"
  26. 460 print" 4. [196]atum + [212]ageszahl"
  27. 470 print" 5. [196]atum - [212]ageszahl"
  28. 480 print" 6. [215]ochentag zum [196]atum"
  29. 490 print" 7. [205]onatskalender"
  30. 500 print" 8. [198]eiertage"
  31. 510 print" 9. [213]rlaubstageberechnung"
  32. 520 print"    [215]aehlen [211]ie ! (1-9) ";
  33. 530 rem
  34. 540 poke204,0
  35. 550 getan$:ifan$=""then550
  36. 560 ifpeek(207)then560
  37. 570 poke204,1
  38. 580 rem
  39. 590 onval(an$)goto610,750,960,1410,1610,1810,1960,2320,3110
  40. 600 goto540
  41. 610 printsc$;"  [213]mrechnung von [202]ulianischem [196]atum in"
  42. 620 print"              [203]alenderdatum"
  43. 630 print"              '_' zum [205]enu"
  44. 640 print" [199]eben [211]ie bitte das [202]ulianische [196]atum"
  45. 650 print" ein: ";:az=1:fz=1:mx(1)=7:gosub4430:fz=0
  46. 660 jd=val(az$(1))
  47. 670 rem
  48. 680 gosub4070
  49. 690 rem
  50. 700 print" [196]er";jd;"[157]. [212]ag der [202]ulianischen"
  51. 710 print" [212]ageszaehlung ist der";int(d);"[157].";m;"[157].";j
  52. 720 print" um ";h;"[213]hr";i"[157].
  53. 730 [143]
  54. 740 [137]4340
  55. 750 [153]sc$;"    (NULL)mrechnung von (NULL)alenderdatum in"
  56. 760 [153]"           mid$ulianisches str$atum"
  57. 770 [153]"              '_' zum (NULL)enu
  58. 780 print" [199]eben [211]ie bitte das [196]atum in der [198]orm"
  59. 790 print" 'tt.mm.jjjj' ein."
  60. 800 print" : ";:az=3:mx(1)=2:mx(2)=2:mx(3)=4:gosub4430
  61. 810 d=val(az$(1)):m=val(az$(2)):j=val(az$(3))
  62. 820 print" [213]hrzeit 'hh.mm': ";:az=2:mx(1)=2:mx(2)=2:gosub4430
  63. 830 ho=val(az$(1)):mi=val(az$(2))
  64. 840 ifho<0orho>23ormi<0ormi>59thenprint" [198]alsche [197]ingabe!":fort=0to1000:next:goto750
  65. 850 t=ho+mi/100
  66. 860 t=int(t)+(t-int(t))/.6
  67. 870 d=d+t/24
  68. 880 rem
  69. 890 gosub4190
  70. 900 rem
  71. 910 ifflthenfl=0:goto590
  72. 920 print" [196]as [202]ulianische [196]atum zum obigen [196]atum"
  73. 930 print" lautet:";jd
  74. 940 rem
  75. 950 goto4340
  76. 960 print"[147]           [212]age zwischen [196]aten"
  77. 970 print"              '_' zum [205]enu
  78. 980 [153]" chr$eben (NULL)ie bitte das erste str$atum in der"
  79. 990 [153]" ascorm 'tt.mm.jjjj' ein."
  80. 1000 [153]" : ";:az[178]3:mx(1)[178]2:mx(2)[178]2:mx(3)[178]4:[141]4430
  81. 1010 d[178][197](az$(1)):m[178][197](az$(2)):j[178][197](az$(3))
  82. 1020 [153]" (NULL)hrzeit 'hh.mm': ";:az[178]2:mx(1)[178]2:mx(2)[178]2:[141]4430
  83. 1030 ho[178][197](az$(1)):mi[178][197](az$(2))
  84. 1040 [139]ho[179]0[176]ho[177]23[176]mi[179]0[176]mi[177]59[167][153]" ascalsche valingabe!":[129]t[178]0[164]1000:[130]:[137]960
  85. 1050 t[178]ho[170]mi[173]100
  86. 1060 t1[178][181](t)[170](t[171][181](t))[173].6
  87. 1070 [143]
  88. 1080 [141]4190
  89. 1090 [143]
  90. 1100 [139]fl[167]fl[178]0:[137]590
  91. 1110 d1[178]jd
  92. 1120 [153]" chr$eben (NULL)ie bitte das zweite str$atum in der"
  93. 1130 [153]"on ascorm 'tt.mm.jjjj' ein."
  94. 1140 [153]" : ";:az[178]3:mx(1)[178]2:mx(2)[178]2:mx(3)[178]4:[141]4430
  95. 1150 d[178][197](az$(1)):m[178][197](az$(2)):j[178][197](az$(3))
  96. 1160 [153]" (NULL)hrzeit 'hh.mm': ";:az[178]2:mx(1)[178]2:mx(2)[178]2:[141]4430
  97. 1170 ho[178][197](az$(1)):mi[178][197](az$(2))
  98. 1180 [139]ho[179]0[176]ho[177]23[176]mi[179]0[176]mi[177]59[167][153]" ascalsche valingabe!":[129]t[178]0[164]1000:[130]:[137]960
  99. 1190 t[178]ho[170]mi[173]100
  100. 1200 t2[178][181](t)[170](t[171][181](t))[173].6
  101. 1210 [143]
  102. 1220 [141]4190
  103. 1230 [143]
  104. 1240 [139]fl[167]fl[178]0:[137]590
  105. 1250 dd[178][182]([181](jd[171]d1))
  106. 1260 [139]jd[179]d1[167]dt[178]t1[171]t2[170].0000001:[137]1280
  107. 1270 dt[178]t2[171]t1[170].0000001
  108. 1280 [139][180](dt)[178][171]1[167]dt[178]dt[170]24:dd[178]dd[171]1
  109. 1290 h[178][181](dt):i[178][181]((dt[171][181](dt))[172]60)
  110. 1300 [153]" str$ie atnnzahl der (NULL)age zwischen den"
  111. 1310 [153]" beiden str$aten betraegt";dd;
  112. 1320 [139]dd[178]1[167][153]"(NULL)ag,":[137]1340
  113. 1330 [153]"(NULL)age,"
  114. 1340 [153]h;
  115. 1350 [139]h[178]1[167][153]"(NULL)tunde und";i;:[137]1370
  116. 1360 [153]"(NULL)tunden und";i;
  117. 1370 [139]i[178]1[167][153]"(NULL)inute.":[137]1400
  118. 1380 [153]"(NULL)inuten."
  119. 1390 [143]
  120. 1400 [137]4340
  121. 1410 [153]sc$;"           str$atum + (NULL)agesanzahl"
  122. 1420 [153]"              '_' zum (NULL)enu
  123. 1430 print" [194]itte geben [211]ie das [196]atum in der [198]orm"
  124. 1440 print" 'tt.mm.jjjj' ein."
  125. 1450 print" : ";:az=3:mx(1)=2:mx(2)=2:mx(3)=4:gosub4430
  126. 1460 d=val(az$(1)):m=val(az$(2)):j=val(az$(3))
  127. 1470 rem
  128. 1480 gosub4190
  129. 1490 rem
  130. 1500 ifflthenfl=0:goto590
  131. 1510 print" [213]nd jetzt geben [211]ie die [193]nzahl der [212]age"
  132. 1520 print"[145] an, die [211]ie zu dem [196]atum addieren"
  133. 1530 print" wollen: ";:az=1:mx(1)=7:gosub4430
  134. 1540 s=val(az$(1))
  135. 1550 jd=jd+s
  136. 1560 rem
  137. 1570 gosub4070
  138. 1580 print" [196]as neue [196]atum lautet:";d;"[157].";m;"[157].";j
  139. 1590 rem
  140. 1600 goto4340
  141. 1610 printsc$;"           [196]atum - [212]agesanzahl"
  142. 1620 print"              '_' zum [205]enu
  143. 1630 [153]" peekitte geben (NULL)ie das str$atum in der ascorm"
  144. 1640 [153]" 'tt.mm.jjjj' ein."
  145. 1650 [153]" : ";:az[178]3:mx(1)[178]2:mx(2)[178]2:mx(3)[178]4:[141]4430
  146. 1660 d[178][197](az$(1)):m[178][197](az$(2)):j[178][197](az$(3))
  147. 1670 [143]
  148. 1680 [141]4190
  149. 1690 [143]
  150. 1700 [139]fl[167]fl[178]0:[137]590
  151. 1710 [153]" (NULL)nd jetzt geben (NULL)ie die atnnzahl der (NULL)age"
  152. 1720 [153]"on an, die (NULL)ie von dem str$atum abziehen"
  153. 1730 [153]" wollen: ";:az[178]1:mx(1)[178]7:[141]4430
  154. 1740 s[178][197](az$(1))
  155. 1750 jd[178]jd[171]s
  156. 1760 [143]
  157. 1770 [141]4070
  158. 1780 [153]" str$as neue str$atum lautet:";d;"cmd.";m;"cmd.";j
  159. 1790 [143]
  160. 1800 [137]4340
  161. 1810 [153]sc$;"           (NULL)ochentag zum str$atum"
  162. 1820 [153]"              '_' zum (NULL)enu
  163. 1830 print" [194]itte geben [211]ie das [196]atum in der [198]orm"
  164. 1840 print" 'tt.mm.jjjj' zu dem [211]ie den"
  165. 1850 print" [215]ochentag wissen wollen ein."
  166. 1860 print" : ";:az=3:mx(1)=2:mx(2)=2:mx(3)=4:gosub4430
  167. 1870 d=val(az$(1)):m=val(az$(2)):j=val(az$(3))
  168. 1880 gosub4190
  169. 1890 ifflthenfl=0:goto590
  170. 1900 print" [196]er ";d;"[157].";m;"[157].";j;"ist ein ";
  171. 1910 w=jd+.5
  172. 1920 rem
  173. 1930 printwo$(w-int(w/7)*7)"."
  174. 1940 rem
  175. 1950 goto4340
  176. 1960 printsc$;"                [203]alender"
  177. 1970 print"              '_' zum [205]enu
  178. 1980 wo$[178]"(NULL)onstr$ie(NULL)itstr$onascre(NULL)am(NULL)on"
  179. 1990 cd$[178]"":cd$[178]cd$[170]cd$[170]cd$[170]cd$
  180. 2000 [153]:[153]" peekitte geben (NULL)ie mid$ahr und (NULL)onat fuer "
  181. 2010 [153]" den (NULL)alender an. (m.j): ";:az[178]2:mx(1)[178]2:mx(2)[178]4:[141]4430
  182. 2020 m[178][197](az$(1)):j[178][197](az$(2))
  183. 2030 d[178]1:[141]4190
  184. 2040 [139]fl[167]fl[178]0:[137]590
  185. 2050 [153]sc$;"";j;""
  186. 2060 [153]"   ";m$(m[171]1):[153]"   ";[200]("tab(tab(tab(tab(tab(tab(tab(tab(tab(",[195](m$(m[171]1)))
  187. 2070 [143]
  188. 2080 d[178]1:[141]4290:l1[178]jd
  189. 2090 m[178]m[170]1:[139]m[177]12[167]m[178]1:j[178]j[170]1
  190. 2100 [143]
  191. 2110 [141]4290:l2[178]jd[171]l1
  192. 2120 [129]i[178]1[164]21[169]3
  193. 2130 [153][202](wo$,i,3)
  194. 2140 [130]
  195. 2150 l1[178]l1[170]6.5:l3[178]l1[171][181](l1[173]7)[172]7
  196. 2160 [153]""[200](cd$,l3[170]3)
  197. 2170 [139]l3[178]6[167]l3[178][171]1
  198. 2180 [129]i[178]1[164]l2
  199. 2190 l4[178]i[170]l3
  200. 2200 [153]""[200](cd$,l4[171][181](l4[173]7)[172]7[170]4)[163][181](l4[173]7)[172]3[170]5);i
  201. 2210 [130]i
  202. 2220 [153]""[200](cd$,14)
  203. 2230 [153]" (NULL)eiterer (NULL)alenderausdruck fuer den"
  204. 2240 [153]" naechsten (NULL)onat erwuenscht ? (j/n) ";
  205. 2250 [151]204,0
  206. 2260 [161]ta$:[139]ta$[178]""[167]2260
  207. 2270 [139][194](207)[167]2270
  208. 2280 [151]204,1
  209. 2290 [139]ta$[178]"n"[167][153]:[137]4340
  210. 2300 [139]ta$[179][177]"j"[167]2250
  211. 2310 [137]2050
  212. 2320 [153]sc$;"                asceiertage"
  213. 2330 [153]"              '_' zum (NULL)enu
  214. 2340 print" [199]eben [211]ie das [202]ahr ein, zu dem [211]ie die"
  215. 2350 print" [198]eiertage wissen wollen: ";:az=1:mx(1)=4:gosub4430
  216. 2360 x=val(az$(1))
  217. 2370 ifx<=1582thenprint" [196]as [196]atum lag vor der [203]alenderreform im [202]ahr 1582 !"
  218. 2380 ifx<=1582thenfori=0to1500:next:goto2320
  219. 2390 rem
  220. 2400 a=x-int(x/19)*19
  221. 2410 b=int(x/100):c=x-b*100
  222. 2420 d=int(b/4):e=b-d*4
  223. 2430 f=int((b+8)/25)
  224. 2440 g=int((b-f+1)/3)
  225. 2450 h=19*a+b-d-g+15:h=h-int(h/30)*30
  226. 2460 i=int(c/4):k=c-i*4
  227. 2470 l=32+2*e+2*i-h-k:l=l-int(l/7)*7
  228. 2480 m=int((a+11*h+22*l)/451)
  229. 2490 n=int((h+l-7*m+114)/31):p=h+l-7*m+114-n*31
  230. 2500 ifffthen2540
  231. 2510 printsc$"            [198]eiertage "x
  232. 2520 print"            [163][163][163][163][163][163][163][163][163][163][163][163][163][163][163]"
  233. 2530 print" [194]ewegliche [198]eiertage:
  234. 2540 nn[178]n:m[178]n:d[178]p[170]1:j[178]x:[141]4290:jd[178]jd[170]1:[141]4070
  235. 2550 m[178]nn:d[178]p[170]1:[141]4290
  236. 2560 jd[178]jd[171]2:[141]4070
  237. 2570 [139]ff[167]2600
  238. 2580 [153]" (NULL)arfreitag";[163]22);d;"cmd.";m$(m[171]1)
  239. 2590 [153]" (NULL)stersonntag";[163]22);p[170]1;"cmd.";m$(nn[171]1)
  240. 2600 [139]ff[167][139]jd[177][178]ua[175]jd[179][178]ue[167]ar$(jd[171]ua)[178]"f":ar$(jd[171]ua[170]3)[178]"f"
  241. 2610 jd[178]jd[170]41
  242. 2620 [141]4070
  243. 2630 [139]ff[167]2650
  244. 2640 [153]" lenhristi left$immelfahrt";[163]22);d;"cmd.";m$(m[171]1)
  245. 2650 [139]ff[167][139]jd[177][178]ua[175]jd[179][178]ue[167]ar$(jd[171]ua)[178]"f"
  246. 2660 jd[178]jd[170]10
  247. 2670 [141]4070
  248. 2680 [139]ff[167]2700
  249. 2690 [153]" (NULL)fingstsonntag";[163]22);d;"cmd.";m$(m[171]1)
  250. 2700 [139]ff[167][139]jd[177][178]ua[175]jd[178][179]ue[167]ar$(jd[171]ua[170]1)[178]"f"
  251. 2710 jd[178]jd[170]11
  252. 2720 [141]4070
  253. 2730 [139]ff[167]2750
  254. 2740 [153]" ascronleichnam";[163]22);d;"cmd.";m$(m[171]1)
  255. 2750 [139]ff[167][139]jd[177][178]ua[175]jd[179][178]ue[167]ar$(jd[171]ua)[178]"f"
  256. 2760 d[178]30:m[178]11:[141]4290
  257. 2770 x[178]jd[170].5:x[178]x[171][181](x[173]7)[172]7
  258. 2780 x[178]18[171](x[177]3)[172]7[171]x:d[178]x:[141]4290
  259. 2790 [139]ff[167]2810
  260. 2800 [153]" peekuss- und peekettag";[163]22);x;"cmd.";m$(m[171]1)
  261. 2810 [139]ff[178]0[167]2910
  262. 2820 [139]jd[177][178]ua[175]jd[179][178]ue[167]ar$(jd[171]ua)[178]"f"
  263. 2830 d[178]1:m[178]1:[141]4290:[139]jd[177][178]ua[175]jd[179][178]ue[167]ar$(jd[171]ua)[178]"f"
  264. 2840 d[178]1:m[178]5:[141]4290:[139]jd[177][178]ua[175]jd[179][178]ue[167]ar$(jd[171]ua)[178]"f"
  265. 2850 d[178]17:m[178]6:[141]4290:[139]jd[177][178]ua[175]jd[179][178]ue[167]ar$(jd[171]ua)[178]"f"
  266. 2860 d[178]1:m[178]11:[141]4290:[139]jd[177][178]ua[175]jd[179][178]ue[167]ar$(jd[171]ua)[178]"f"
  267. 2870 d[178]25:m[178]12:[141]4290:[139]jd[177][178]ua[175]jd[179][178]ue[167]ar$(jd[171]ua)[178]"f"
  268. 2880 d[178]26:m[178]12:[141]4290:[139]jd[177][178]ua[175]jd[179][178]ue[167]ar$(jd[171]ua)[178]"f"
  269. 2890 [139]j[179]je[167]x[178]j[170]1:[137]2400
  270. 2900 [142]
  271. 2910 [153]" asceststehende asceiertage:
  272. 2920 print" [206]eujahr (";
  273. 2930 d=1:m=1:gosub4290:wx=jd+.5:wx=wx-int(wx/7)*7:printwo$(wx)")"tab(28);
  274. 2940 print"1.[202]anuar
  275. 2950 [153]" (NULL)aifeiertag (";
  276. 2960 d[178]1:m[178]5:[141]4290:wx[178]jd[170].5:wx[178]wx[171][181](wx[173]7)[172]7:[153]wo$(wx)")"[163]28);
  277. 2970 [153]"1.(NULL)ai
  278. 2980 print" [212].d.d.[197]inheit (";
  279. 2990 d=17:m=6:gosub4290:wx=jd+.5:wx=wx-int(wx/7)*7:printwo$(wx)")"tab(28);
  280. 3000 print"17.[202]uni
  281. 3010 [153]" atnllerheiligen (";
  282. 3020 d[178]1:m[178]11:[141]4290:wx[178]jd[170].5:wx[178]wx[171][181](wx[173]7)[172]7:[153]wo$(wx)")"[163]28);
  283. 3030 [153]"1.(NULL)ovember
  284. 3040 d=25:m=12:gosub4290
  285. 3050 wx=jd+.5:wx=wx-int(wx/7)*7
  286. 3060 print" [215]eihnachten "tab(28)"25./26.[196]ez.":print" ("wo$(wx)"/";
  287. 3070 ifwx=6thenwx=-1
  288. 3080 printwo$(wx+1);")"
  289. 3090 rem
  290. 3100 goto4340
  291. 3110 printsc$"          [213]rlaubstageberechnung"
  292. 3120 print"              '_' zum [205]enu"
  293. 3130 print"  [199]eben [211]ie bitte den [196]atumsbereich in"
  294. 3140 print"   der [198]orm 'tt.mm.jjjj' ein,"
  295. 3150 print"   indem [211]ie [213]rlaub machen moechten:"
  296. 3160 print"  [193]nfangsdatum: ";:az=3:mx(1)=2:mx(2)=2:mx(3)=4:gosub4430
  297. 3170 da$=az$(1):ma$=az$(2):ja$=az$(3)
  298. 3180 da=val(da$):d=da:ma=val(ma$):m=ma:ja=val(ja$):j=ja
  299. 3190 gosub4190:ua=jd
  300. 3200 iffl=1thenfl=0:goto590
  301. 3210 print"  [197]nddatum:     ";:az=3:mx(1)=2:mx(2)=2:mx(3)=4:gosub4430
  302. 3220 de$=az$(1):me$=az$(2):je$=az$(3)
  303. 3230 de=val(de$):d=de:me=val(me$):m=me:je=val(je$):j=je
  304. 3240 gosub4190:ue=jd
  305. 3250 iffl=1thenfl=0:goto590
  306. 3260 ifue<=uathenprint" [198]alsche [197]ingabe!":fort=0to1000:next:goto3110
  307. 3270 ifue-ua>365thenprint" [218]u grosser [218]eitraum!":fort=0to1000:next:goto3110
  308. 3280 print" 1. [197]ingabe von      2. [197]ingabe von"
  309. 3290 print" [193]rbeitstagen, und   [213]rlaubstagen, und"
  310. 3300 print" [194]erechnung eines    [194]erechnung eines"
  311. 3310 print" moeglichst langen   [213]rlaubs mit moeg-"
  312. 3320 print" [213]rlaubs.            lichst wenigen"
  313. 3330 print"                     [193]rbeitstagen."
  314. 3340 print" [194]itte waehlen [211]ie '1' oder '2' ! ";
  315. 3350 poke204,0
  316. 3360 getta$:ifta$=""then3360
  317. 3370 ifpeek(207)then3370
  318. 3380 poke204,1
  319. 3390 ifta$<>"1"andta$<>"2"then3350
  320. 3400 ifta$="1"thenfu=1:goto3420
  321. 3410 fu=2
  322. 3420 print"[145][145][145][145][145][145][145][145][145]"
  323. 3430 fori=0to9
  324. 3440 print"                                       "
  325. 3450 next
  326. 3460 print"[145][145][145][145][145][145][145][145][145][145]"
  327. 3470 print" [194]itte geben [211]ie die [193]nzahl der"
  328. 3480 iffu=1thenprint" [193]rbeitstage ein: ";:goto3500
  329. 3490 print" [213]rlaubstage ein: ";
  330. 3500 az=1:mx(1)=3:gosub4430
  331. 3510 ut=val(az$(1))
  332. 3520 ifut>ue-uathenprint" [204]iegt nicht mehr im obigen [194]ereich!"
  333. 3530 ifut>ue-uathenfort=0to1500:next:goto3110
  334. 3540 ifut<=0thenprint" [198]alsche [197]ingabe!":fort=0to1000:next:goto3110
  335. 3550 print" [194]itte warten! ";
  336. 3560 fori=0to365:ar$(i)="":nexti
  337. 3570 fori=0toue-ua
  338. 3580 jd=i+ua+.5:s=jd-int(jd/7)*7
  339. 3590 ifs=5ors=6thenar$(i)="f"
  340. 3600 nexti
  341. 3610 x=ja:ff=1:gosub2400:ff=0
  342. 3620 iffu=2then3870
  343. 3630 printsc$"         [213]rlaubstageberechnung"
  344. 3640 print"[197]rster guenstiger [213]rlaub (viele [213]rlaubs-";
  345. 3650 print"tage bei wenigen [193]rbeitstagen) im [218]eit-"
  346. 3660 print"raum vom "da$". "ma$". "ja$" bis "de$". "me$". "je$":"
  347. 3670 print" [194]itte warten![145]"
  348. 3680 at=ut:jo=0:jd=0
  349. 3690 fori=uatoue-at-1:az=0:l=0
  350. 3700 ifi-ua+l-365>.then3750
  351. 3710 ifar$(i-ua+l)=""thenaz=az+1
  352. 3720 ifaz<=atthenl=l+1:goto3700
  353. 3730 ifl>jothenjo=l:jd=i
  354. 3740 nexti
  355. 3750 jj=jd:jd=ue+1:gosub4070
  356. 3760 ifd=1andm=1andue=jj+jo-1thenjo=jo+1
  357. 3770 jd=jj
  358. 3780 gosub4070
  359. 3790 print" [213]rlaubsbeginn:    "d"[157]."m"[157]."j
  360. 3800 jd=jd+1:printtab(20)wo$(jd-int(jd/7)*7)"":jd=jd-1
  361. 3810 jd=jd+jo:gosub4070:print" 1. [193]rbeitstag:    "d"[157]."m"[157]."j
  362. 3820 jd=jd+1:printtab(20)wo$(jd-int(jd/7)*7)""
  363. 3830 print" [213]rlaubsdauer:     "jo"[212]ag";
  364. 3840 ifjo<>1thenprint"e";
  365. 3850 print:print" [196]avon [193]rbeitstage:"at
  366. 3860 goto4340
  367. 3870 printsc$"         [213]rlaubstageberechnung"
  368. 3880 print"[197]rster guenstiger [213]rlaub (viele [213]rlaubs-";
  369. 3890 print"tage bei wenigen [193]rbeitstagen) im [218]eit-"
  370. 3900 print"raum vom "da$"."ma$"."ja$" bis "de$"."me$"."je$":"
  371. 3910 print" [194]itte warten![145]"
  372. 3920 uo=0:un=0:fori=uatoue-ut+1
  373. 3930 forj=itoi+ut-1
  374. 3940 ifar$(j-ua)="f"thenun=un+1
  375. 3950 nextj
  376. 3960 ifun>uothente=i:uo=un
  377. 3970 un=0:nexti
  378. 3980 jd=te:gosub4070
  379. 3990 print" [213]rlaubsbeginn:    "d"[157]."m"[157]."j:gosub4190
  380. 4000 jd=jd+1:printtab(20)wo$(jd-int(jd/7)*7)"":jd=jd-1
  381. 4010 jd=jd+ut:gosub4070:print" 1. [193]rbeitstag:    "d"[157]."m"[157]."j
  382. 4020 jd=jd+1:printtab(20)wo$(jd-int(jd/7)*7)"":jd=jd-1
  383. 4030 print" [213]rlaubsdauer:     "ut"[212]ag";
  384. 4040 ifut<>1thenprint"e";
  385. 4050 print:print" [196]avon [193]rbeitstage:"ut-uo
  386. 4060 goto4340
  387. 4070 rem
  388. 4080 n=jd+.5:z=int(n):f=n-z
  389. 4090 ifz<2299161thena=z:goto4120
  390. 4100 a=int((z-1867216.25)/36524.25)
  391. 4110 a=z+1+a-int(a/4)
  392. 4120 b=a+1524:c=int((b-122.1)/365.25):k=int(365.25*c):e=int((b-k)/30.6001)
  393. 4130 d=b-k-int(30.6001*e)+f
  394. 4140 m=e-1:j=c-4716
  395. 4150 ife<=13then4170
  396. 4160 m=m-12:j=j+1
  397. 4170 x=(d-int(d))*24:h=int(x):i=int((x-int(x))*60)
  398. 4180 return
  399. 4190 rem
  400. 4200 dx=d:mx=m:jx=j
  401. 4210 gosub4290
  402. 4220 gosub4070
  403. 4230 ifint(dx)=int(d)andmx=mthen4270
  404. 4240 print" [197]inen"int(dx)"[157]."mx"[157]."jx"gibt es nicht!"
  405. 4250 fort=0to1500:next
  406. 4260 fl=1:return
  407. 4270 ifd>0andd<32andm>0andm<13then4290
  408. 4280 print" [198]alsche [197]ingabe !":fortm=0to1500:next:fl=1:return
  409. 4290 k=10000*j+100*m+d:b=-63.5:y=j+4712:n=m+1
  410. 4300 ifm<=2theny=y-1:n=n+12
  411. 4310 ifk>=15821015thena=int((y+88)/100):b=b+38-a+int(a/4)
  412. 4320 jd=int(365.25*y)+int(30.6001*n)+d+b
  413. 4330 return
  414. 4340 rem
  415. 4350 print"[206]och einmal ? (j/n) ";
  416. 4360 poke204,0
  417. 4370 geta$:ifa$=""then4370
  418. 4380 ifpeek(207)then4380
  419. 4390 poke204,1
  420. 4400 ifa$="j"then590
  421. 4410 ifa$<>"n"anda$<>"_"then4360
  422. 4420 run
  423. 4430 fori=1toaz:fp=0:az$(i)=""
  424. 4440 print" [146]";
  425. 4450 getta$:ifta$=""then4450
  426. 4460 lz(i)=len(az$(i))-fp
  427. 4470 ifta$="_"thenrun
  428. 4480 ifmx(i)=lz(i)andta$<>chr$(20)andta$<>chr$(13)andta$<>"."then4450
  429. 4490 ifta$>="0"andta$<="9"then4520
  430. 4500 iflz(i)=0andfp=0and(ta$="+"orta$="-")then4520
  431. 4510 ifta$<>"."andta$<>chr$(13)andta$<>chr$(20)then4450
  432. 4520 ifta$=chr$(20)andlz(i)=0andfp=0then4450
  433. 4530 ifta$=chr$(13)andlz(i)=0andfp=0then4450
  434. 4540 ifta$="."andi=azandfz<>1then4450
  435. 4550 ifta$=chr$(20)andlz(i)=-1andfp=1thenfp=0:lz(i)=1:goto4450
  436. 4560 ifta$=chr$(20)thenlz(i)=lz(i)-1:az$(i)=left$(az$(i),lz(i)+fp)
  437. 4570 ifta$=chr$(13)orta$="."andi<azthenprintchr$(20)".";:goto4630
  438. 4580 ifta$="."andi<azthen4630
  439. 4590 ifta$<>chr$(20)thenaz$(i)=az$(i)+ta$:lz(i)=len(az$(i))
  440. 4600 ifta$="+"orta$="-"thenfp=1
  441. 4610 printchr$(20)ta$;
  442. 4620 goto4440
  443. 4630 nexti
  444. 4640 printchr$(20)
  445. 4650 return
  446.